package request

import "github.com/astaxie/beego/validation"

type StoreProductRequest struct {
	Id           uint                            `json:"id"`                           //商品id|添加时不填，修改时必填
	Image        string                          `json:"image"`                        //商品图片
	SliderImage  string                          `json:"sliderImage"`                  //轮播图
	StoreName    string                          `json:"storeName" binding:"required"` //商品名称
	StoreInfo    string                          `json:"storeInfo" binding:"required"` //商品简介
	Keyword      string                          `json:"keyword"`   //关键字
	CateId       string                          `json:"cateId" binding:"required"`    //分类id
	UnitName     string                          `json:"unitName" binding:"required"`  //单位名
	Sort         int                             `json:"sort"`                         //排序
	IsHot        bool                            `json:"isHot"`                        //是否热卖
	IsBenefit    bool                            `json:"isBenefit"`                    //是否优惠
	IsNew        bool                            `json:"isNew"`                        //是否新品
	IsGood       bool                            `json:"isGood"`                       //是否优品推荐
	GiveIntegral int                             `json:"giveIntegral"`                 //获得积分
	IsSub        bool                            `json:"isSub" binding:"required"`     //是否单独分佣
	Ficti        uint                            `json:"ficti"`                        //虚拟销量
	TempId       int                             `json:"tempId" binding:"required"`    //运费模板ID
	SpecType     bool                            `json:"specType"`                     //规格 0单 1多
	Activity     []string                        `json:"activity"`                     //活动显示排序0=默认，1=秒杀，2=砍价，3=拼团
	Attr         []*StoreProductAttrRequest      `json:"attr"`                         //商品属性
	AttrValue    []*StoreProductAttrValueRequest `json:"attrValue"`                    //商品属性详情
	Content      string                          `json:"content"`                      //商品描述
	CouponIds    []uint                          `json:"couponIds"`                    //优惠券id集合
	FlatPattern  string                          `json:"flatPattern"`                  //展示图

}

func (p *StoreProductRequest) Valid(v *validation.Validation) {
	if p.Image == "" {
		v.SetError("Image", "商品图片不能为空")
	} else if len(p.Image) > 256 {
		v.SetError("Image", "商品图片名称长度不能超过255个字符")
	} else if p.SliderImage == "" {
		v.SetError("SliderImage", "轮播图不能为空")
	} else if len(p.SliderImage) > 2000 {
		v.SetError("SliderImage", "轮播图名称长度不能超过2000个字符")
	} else if p.StoreName == "" {
		v.SetError("StoreName", "商品名称不能为空")
	} else if len(p.StoreName) > 128 {
		v.SetError("StoreName", "商品名称长度不能超过128个字符")
	} else if p.StoreInfo == "" {
		v.SetError("StoreInfo", "商品简介不能为空")
	} else if len(p.StoreInfo) > 256 {
		v.SetError("StoreInfo", "商品简介长度不能超过256个字符")
	} else if len(p.Keyword) > 255 {
		v.SetError("Keyword", "关键字长度不能超过255个字符")
	} else if p.CateId == "" {
		v.SetError("CateId", "商品分类不能为空")
	} else if len(p.CateId) > 64 {
		v.SetError("CateId", "商品分类组合长度不能超过64个字符")
	} else if p.UnitName == "" {
		v.SetError("UnitName", "单位名称不能为空")
	} else if len(p.UnitName) > 32 {
		v.SetError("UnitName", "单位名长度不能超过32个字符")
	} else if p.TempId == 0 {
		v.SetError("TempId", "运费模板不能为空")
	} else if len(p.Attr) == 0 {
		v.SetError("Attr", "商品属性不能为空")
	} else if len(p.AttrValue) == 0 {
		v.SetError("AttrValue", "商品属性详情不能为空")
	} else if len(p.FlatPattern) > 1000 {
		v.SetError("FlatPattern", "展示图名称长度不能超过1000个字符")
	}
}
